An application software (app or application for short) is computer software designed to perform a group of coordinated functions, tasks, or activities for the benefit of the user. Various applications may include what is referred to as “business logic.” Business logic is the part of the program that encodes the real-world business rules that determine how data can be created, stored and changed. This is contrasted with the remainder of the software that might be concerned with lower-level details, such as managing a database or displaying the user interface, system infrastructure or generally connecting various parts of the program.
Oftentimes though, such business logic needs to be changed in the program. For example, the business logic may need to be changed due to regulatory changes, modernization, simplification, exposure to audit, business needs, etc.
However, such business logic may be buried in the application source code thereby making it difficult to locate. Furthermore, the business logic may be written in a particular programming language within a monolithic application thereby making it difficult to change the business logic as rapidly as might be required.
Legacy applications tend to be big, in the volumes of millions of lines of code and thousands of programs, and are usually not documented up-to-date. Maintenance of these applications is usually done by teams who did not write the original application, be it internal teams or outsourced teams. As a result, identifying the business rules implemented in these applications is a challenge.
There have many attempts to expose the business logic as business rules; however, such attempts have been deficient. While there are tools that are used to analyze the composition of an application, such tools do not have a reliable way of identifying the business rules within the application.